package com.woniuxy.sale.mapper;

import com.woniuxy.sale.entity.SaleOrderItem;
import com.woniuxy.sale.entity.dto.SaleOrderDTO;
import com.woniuxy.sale.entity.dto.SaleOrderItemDTO;
import com.woniuxy.sale.entity.dto.SalePackDTO;
import com.woniuxy.sale.entity.dto.TopDTO;
import com.woniuxy.sale.entity.vo.DelSaleOrderVo;
import com.woniuxy.sale.entity.vo.FindOrderItemsVo;
import com.woniuxy.sale.entity.vo.SaleAddOrderVo;
import com.woniuxy.sale.entity.vo.SaleOrderVo;
import com.woniuxy.model.vo.UpdateSaleOrderVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 选货单总表; Mapper 接口
 * </p>
 *
 * @author lio
 * @since 2023-09-07
 */
@Mapper
public interface SaleOrderMapper {

    List<SaleOrderDTO> info(SaleOrderVo saleOrderVo);

    boolean add(SaleAddOrderVo orderVo);

    boolean updateState(UpdateSaleOrderVo updateSaleOrderVo);

    boolean del(DelSaleOrderVo delSaleOrderVo);

    String findStateBySno(String sno);

    List<SalePackDTO> packInfo(SaleOrderVo saleOrderVo);

    //List<SaleOrderItemDTO> findOrderItems(Integer id);
    List<SaleOrderItemDTO> findOrderItems(FindOrderItemsVo findOrderItemsVo);

    List<SaleOrderItem> findInfoOrderItems(Integer id);

    List<String> findAllSno();

    String findCustomerBySno(String sno);

    Integer findSidBySno(String sno);

    boolean updatePriceById(@Param("totalPrice") BigDecimal totalPrice, @Param("id") Integer id);

    List<TopDTO> findTopPaid();

    List<TopDTO> findToUnpPaid();

    BigDecimal findTotalPriceBySno(String sno);
}
